Computer software often interacts with a variety of other software. For example, a first software component relies upon a second software component to perform services for it and may send a request to the second software component including parameters that are to be processed or may otherwise provide instructions to the second software component. The second software component may complete the requested processing and return a message with results to the first software component. Testing a software component or application, for example when the component or application is first developed or is later modified, typically involves performing a plurality of representative activities of the software component or application. This may be referred to as exercising the software, executing the software, or testing the software. The separate scenarios of execution may be referred to as test cases.
It may be desirable in some stages of software testing, for example when the software under test is not yet ready for deployment to a production environment and/or when the supporting second software component is not yet ready for deployment to the production environment, to substitute a dummy or simulated interface in the place of the second software component or the support software. This substitute interface may define a number of different loop-back actions or testing stubs, such that when a request for service is sent by the software under test, an appropriate loop-back action or testing stub is selected and returned to the software under test: for example, a plausible response in the appropriate response message format is returned to the software under test. This stubbing practice, well known to those skilled in the software development art, promotes testing of in-progress software.